package com.ruoyi.ams.domain;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.List;

/**
 * 资产调拨对象 ams_asset_allocation
 * 
 * @author yfkj
 * @date 2022-05-16
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AmsAssetAllocation
{
    private static final long serialVersionUID = 1L;
    /** 资产调拨表主键 */
    @TableField(exist = true)
    @TableId(type= IdType.AUTO)
    @ApiModelProperty(value =  "${comment}")
    private Long allocationId;
    /** 编号 */
    @Excel(name = "编号")
    @TableField(exist = true)
    @ApiModelProperty(value =  "编号")
    private String sn;
    /** 状态 */
    @Excel(name = "状态")
    @TableField(exist = true)
    @ApiModelProperty(value =  "状态")
    private String status;
    /** 流程表主键 */
    @Excel(name = "流程表主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "流程表主键")
    private Long processId;

    /** 调出部门主键 */
    @Excel(name = "调出部门主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "调出部门主键")
    private Long outDeptId;
    @TableField(exist = false)
    @ApiModelProperty(value =  "调出部门名称")
    private String outDeptName;

    /** 调出负责人主键 */
    @Excel(name = "调出负责人主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "调出负责人主键")
    private Long outUserId;
    @TableField(exist = false)
    @ApiModelProperty(value =  "调出负责人姓名")
    private String outUserName;

    /** 调出日期 */
    @Excel(name = "调出日期")
    @TableField(exist = true)
    @ApiModelProperty(value =  "调出日期")
    private Long outTime;
    @TableField(exist = false)
    @ApiModelProperty(value =  "调出日期字符串")
    private String outTimeStr;

    /** 调出说明 */
    @Excel(name = "调出说明")
    @TableField(exist = true)
    @ApiModelProperty(value =  "调出说明")
    private String outExplain;

    /** 调入部门主键 */
    @Excel(name = "调入部门主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "调入部门主键")
    private Long inDeptId;
    @TableField(exist = false)
    @ApiModelProperty(value =  "调入部门名称")
    private String inDeptName;

    /** 调入负责人主键 */
    @Excel(name = "调入负责人主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "调入负责人主键")
    private Long inUserId;
    @TableField(exist = false)
    @ApiModelProperty(value =  "调入负责人姓名")
    private String inUserName;

    /** 调入日期 */
    @Excel(name = "调入日期")
    @TableField(exist = true)
    @ApiModelProperty(value =  "调入日期")
    private Long inTime;
    @TableField(exist = false)
    @ApiModelProperty(value =  "调入日期字符串")
    private String inTimeStr;

    /** 调入说明 */
    @Excel(name = "调入说明")
    @TableField(exist = true)
    @ApiModelProperty(value =  "调入说明")
    private String inExplain;
    /** 记录创建时间 */
    @Excel(name = "记录创建时间")
    @TableField(exist = true)
    @ApiModelProperty(value =  "记录创建时间")
    private Long createTime;
    @TableField(exist = false)
    @ApiModelProperty(value =  "记录创建时间字符串")
    private String createTimeStr;

    /** 记录修改时间 */
    @Excel(name = "记录修改时间")
    @TableField(exist = true)
    @ApiModelProperty(value =  "记录修改时间")
    private Long updateTime;
    @TableField(exist = false)
    @ApiModelProperty(value =  "记录修改时间字符串")
    private String updateTimeStr;

    @TableField(exist = false)
    @ApiModelProperty(value =  "调拨资产ID的数组")
    private Long[] assetIds;

    @TableField(exist = false)
    @ApiModelProperty(value =  "调拨的资产")
    private List<String> assetNames;

    public static final String ALLOCATION_ID="allocation_id";
    public static final String SN="sn";
    public static final String STATUS="status";
    public static final String PROCESS_ID="process_id";
    public static final String OUT_DEPT_ID="out_dept_id";
    public static final String OUT_USER_ID="out_user_id";
    public static final String OUT_TIME="out_time";
    public static final String OUT_EXPLAIN="out_explain";
    public static final String IN_DEPT_ID="in_dept_id";
    public static final String IN_USER_ID="in_user_id";
    public static final String IN_TIME="in_time";
    public static final String IN_EXPLAIN="in_explain";
    public static final String CREATE_TIME="create_time";
    public static final String UPDATE_TIME="update_time";
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("allocationId", getAllocationId())
            .append("sn", getSn())
            .append("status", getStatus())
            .append("processId", getProcessId())
            .append("outDeptId", getOutDeptId())
            .append("outUserId", getOutUserId())
            .append("outTime", getOutTime())
            .append("outExplain", getOutExplain())
            .append("inDeptId", getInDeptId())
            .append("inUserId", getInUserId())
            .append("inTime", getInTime())
            .append("inExplain", getInExplain())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
